//静态内部类定义在外部类的成员位置，并且有static修饰
public class Main {
    public static void main(String[] args) {
        Outer04 outer04 = new Outer04();
        outer04.m1();
        //外部其他类使用静态内部类的两种方式：(和成员内部类是差不多的)
        //1.
        Outer04.Inner04 inner1 = new Outer04.Inner04();
        inner1.say();
        //2.
        Outer04.Inner04 inner2 = new Outer04.Inner04();
        inner2.say();
    }
}

class Outer04 {
    private int n1 = 10;
    private static String name = "ysy";

    //静态内部类可以添加任意访问修饰符，它的地位就是一个成员
    public static class Inner04 {
        // 如果外部类和内部类成员重名，遵循就近原则,如果想访问外部类那个成员，可以使用（外部类.this.成员）去访问
        public void say() {
            //System.out.println(n1);
            System.out.println(name);//静态内部类可以直接访问外部所有的静态成员
        }
    }
    public void m1() {
        Inner04 inner04 = new Inner04();
        inner04.say();
    }
    public static Inner04 getInner04() {
        return new Inner04();
    }
}
